package com.fengze.business.service;

import java.util.List;
import com.fengze.business.domain.Payment;
import com.fengze.business.query.PaymentFinishReqParam;
import com.fengze.business.query.PaymentReqParam;
import com.fengze.business.resp.PaymentRespDetail;

/**
 * 付款Service接口
 * 
 * @author lug
 * @date 2024-12-10
 */
public interface IPaymentService 
{
    /**
     * 查询付款
     * 
     * @param id 付款主键
     * @return 付款
     */
    public Payment selectPaymentById(Long id);

    /**
     * 查询付款列表
     * 
     * @param payment 付款
     * @return 付款集合
     */
    public List<Payment> selectPaymentList(Payment payment);

    /**
     * 新增付款
     * 
     * @param payment 付款
     * @return 结果
     */
    public int insertPayment(Payment payment);

    /**
     * 修改付款
     * 
     * @param payment 付款
     * @return 结果
     */
    public int updatePayment(Payment payment);

    /**
     * 批量删除付款
     * 
     * @param ids 需要删除的付款主键集合
     * @return 结果
     */
    public int deletePaymentByIds(Long[] ids);

    /**
     * 删除付款信息
     * 
     * @param id 付款主键
     * @return 结果
     */
    public int deletePaymentById(Long id);


    /**
     * 查询所有付款记录
     * @param param
     * @return
     */
    List<Payment> listAll(PaymentReqParam param);


    /**
     * 提交审核
     * @param payment
     * @return
     */
    int submit(Payment payment);

    /**
     * 完成付款操作
     * @param param
     * @return
     */
    int finish(PaymentFinishReqParam param);

    PaymentRespDetail getDetail(Long id);
}
